Game system

ABSTRACT

A tennis game system includes a game machine connected to a television set via an AV cable, and a racket-shaped input device for inputting operation to the game machine. A game player instructs a ball striking player to strike a ball on a monitor screen by operating the racket-shaped input device. At this time, a game processor included in the game machine calculates a predicted return position of a ball returned by the opposite player, compares a current position of the ball striking player with the predicted return position, and judges whether the predicted return position is within a ball strikable range for the ball striking player. If a judgment means judges that the predicted return position is out of the ball strikable range, a ball striking position movement means, i.e. the game processor moves the ball striking position.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a National stage entry of International ApplicationNo. PCT/JP03/04861, filed Aug. 11, 2003, the entire specification claimsand drawings of which are incorporated herewith by reference.

TECHNICAL FIELD

The present invention relates to a tennis game system. Morespecifically, the present invention relates to a tennis game system inwhich game players strike a ball displayed on a monitor screen by turnsby operating an input device.

PRIOR ART

In such a conventional kind of tennis game system, a game playergenerally controls a position of a tennis player on a monitor screen byoperating a joy stick or the like provided on a controller as an inputdevice so as to adjust a ball striking position.

Therefore, in any of conventional tennis game systems, the outcome of agame depends on skills and techniques for operating the controller, andthus, these games are hard to play especially for elderly persons andyoung children.

SUMMARY OF THE INVENTION

It is therefore a primary object of the present invention to provide atennis game system that is comparatively easy to play for everyone.

A tennis game apparatus according to the present invention is a tennisgame system in which a ball striking player and its opposite player byturns strike a bail displayed on a monitor screen, and comprises a meansfor calculating a predicted return position of the ball returned by theopposite player and a ball striking position moving means for moving aball striking position of the ball striking player based on thepredicted return position.

The tennis game system is, in embodiments, shown by a reference numeral10, and includes a game machine (12: a reference numeral showing acorresponding part in the embodiments, and so forth.) connected via anAV cable (22) to a television set (20) being a monitor, and aracket-shaped input device (34) for inputting an operation input to thegame machine. A game player instructs a ball striking player to strike aball on the monitor screen by operating the racket-shaped input device.Here, the game machine includes a game processor (52) which constitutesthe predicted return position calculating means (step S141) and the ballstriking position moving means (steps S145 and S146).

More specifically, the game processor calculates the predicted returnposition of a ball returned by the opposite player in a step S141 inFIG. 19 of the embodiment, and compares a current position of the ballstriking player with the predicted return position so as to judgewhether the predicted return position is within a ball-strikable rangefor the ball striking player (step S143). When a judgment means judgesthat the position is out of the ball-strikable range, the ball strikingposition moving means, i.e., the game processor moves the ball strikingposition.

Assuming that a horizontal direction of the monitor screen is an X-axis,the ball striking position moving means moves the ball striking positionin a direction of the X-axis.

When an operating switch (38) is provided on the input device, theposition change means (steps S152 and S158 in FIG. 20), in response toan operation of the operating switch, changes the ball striking positionin a direction of a Z-axis that is equivalent to a directionperpendicular to the monitor screen, and sets the ball striking positionon forward or backward position.

According to the present invention, since the ball striking position ofthe ball striking player is automatically controlled, the ball strikingposition could be accurately moved even with poor control or operationof an operating device, which means that everyone including elderlypersons and young children can play a game in a relatively easy way.

The above described objects and other objects, features, aspects andadvantages of the present invention will become more apparent from thefollowing detailed description of the present invention when taken inconjunction with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an illustrative view showing an entire configuration of avirtual tennis game system in one embodiment of the present invention.

FIG. 2 is an illustrative view showing one example of a game screendisplayed on a television monitor in FIG. 1 embodiment.

FIG. 3 is an illustrative view showing another example of the gamescreen displayed on the television monitor in FIG. 1 embodiment.

FIG. 4 is a block diagram showing FIG. 1 embodiment.

FIG. 5 is an illustrative view showing inner structure of aracket-shaped input device in FIG. 1 embodiment.

FIG. 6 is a circuit diagram showing the racket-shaped input device.

FIG. 7 is a waveform chart showing an operation of the racket-shapedinput device.

FIG. 8 is a flowchart showing an entire operation of FIG. 1 embodiment.

FIG. 9 is an illustrative view showing state or state transition of FIG.1 embodiment.

FIG. 10 is a flowchart showing an entire operation of an MCU in FIG. 4embodiment.

FIG. 11 is a flowchart showing a specific operation of an accelerationdetection process shown in FIG. 10.

FIG. 12 is a flowchart showing a specific operation of a codetransmission process in FIG. 10 embodiment.

FIG. 13 is a flowchart showing a specific operation of a code receptionprocess by a game processor in FIG. 8 embodiment.

FIG. 14 is a flowchart showing a specific operation of a pre-tossprocess by the game processor in FIG. 8 embodiment.

FIG. 15 is a flowchart showing a specific operation of a during-tossprocess by the game processor in FIG. 8 embodiment.

FIG. 16 is a flowchart showing a specific operation of during-rallyprocess by the game processor in FIG. 8 embodiment.

FIG. 17 is a flowchart showing one part of a specific operation of aball coordinate control process by the game processor in FIG. 8embodiment.

FIG. 18 is a flowchart showing another part of the specific operation ofthe ball coordinate control process.

FIG. 19 is a flowchart showing one part of a specific operation of aplayer coordinate control process by the game processor in FIG. 8embodiment.

FIG. 20 is a flowchart showing another part of a specific operation ofthe player coordinate control process.

FIG. 21 is a flowchart showing a specific operation of a point scoringprocess by the game processor in FIG. 8 embodiment.

BEST MODE FOR PRACTICING THE INVENTION

Referring to FIG. 1, a virtual tennis game system 10, one embodiment ofthe present invention, includes a game machine 12 which is supplied witha direct current power source by an AC adapter 14. The power source maybe replaced with batteries 16. The game machine 12 is connected to an AVterminal 18 of a television monitor 20 via an AV cable 22.

The game machine 12 also includes a housing on which a power switch 24is provided, and direction buttons 26, decision key 28 and cancel key 30are provided as well. The direction buttons 26 contain four buttons forfour directions of movement (up, down, left and right) which are used,for example, to move a cursor in selecting a menu or game mode on adisplay screen of the television monitor 20. The decision key 28 is usedto decide an entry into the game machine 12. The cancel key 30 isutilized for calculating the entry into the game machine 12.

The game machine 12 is further provided with an infrared receiver 32which receives an infrared signal from an infrared LED 36 on aracked-shaped input device 34 to be hereinafter described.

In this embodiment, two racket-shaped input devices 34 are utilized.Each of the racket-shaped input devices 34 is provided with the infraredLED 36 and a serve switch 38. The serve switch 38 is operated in orderto toss a ball for delivering a serve in a tennis game, and is also usedas a toggle switch to move a ball striking position forward or backwardduring a rally to be described later. As mentioned above, the infraredsignal from the infrared LED 36 is received by the infrared receiver 32on the game machine 12. The racket-shaped input devices 34 each areprovided with a piezoelectric buzzer element used as an accelerationsensor, and the game machine 12 receives an acceleration correlationsignal from the piezoelectric buzzer element to apply a change to a ball40 on the game screen shown in FIG. 2 or FIG. 3.

Referring to FIG. 2, the game screen on the television monitor 20 of thevirtual tennis game system 10, displays the ball 40 and a playercharacter 42 as sprite images, and also displays a net character 44 andcourt character 46 as text screens. In addition, a score display portion47 is formed to display a score of a tennis game being currently played.For a match-up game as shown in FIG. 3, the display screen of thetelevision monitor 20 is vertically split into two parts, an upper partdisplaying a view from one tennis player, and a lower part displaying aview from the other tennis player. Each of the upper and lower partdisplays the ball 40, player character 42, net character 44 and courtcharacter 46.

In this virtual tennis game system 10, when a game player actuallyswings the racket-shaped input device 34 in a real space in a mannerwhich is timed with a movement of the ball 40 in the game screen, a gameprocessor 52 (FIG. 4) detects an acceleration correlation signal fromthe piezoelectric buzzer element, by means of an infrared signalconveyed from the infrared LED 36 to the infrared receiver 32. Forinstance, the ball 40 is moved toward the opposite side of the court 46as if the ball 40 bounced off the racket, according to a timing withwhich the racket-shaped input device 34 has reached a predeterminedmovement speed and a position of the ball 40 on the screen. The gameprocessor 52 judges whether the ball 40 is in or out of the courtdepending on the moved position of the ball 40. If the timing ofswinging the racket-shaped input device 34 is inconsistent with theposition of the ball 40 on the screen, the game processor 52 recognizesthat as a swing and miss (letting the ball pass).

Referring to FIG. 4, the racket-shaped input device 34 includes theinfrared LED 36 and the serve switch (key switch) 38 as mentioned above,and further incorporates an acceleration sensor circuit 48. Theacceleration sensor circuit 48 includes a piezoelectric buzzer element66 and its related circuit as shown in FIG. 5 to be described below, andan acceleration correlation signal from the acceleration sensor circuit48 is supplied to an MCU 50. The MCU 50 may be, for example, an 8-bitsingle-chip microcomputer, and converts the acceleration correlationsignal from the piezoelectric buzzer element to a digital signal andapplies it to the infrared LED 36.

A digital-modulated infrared signal from the infrared LED 36 on each ofthe two racket-shaped input devices 34, is received anddigital-demodulated by the infrared receiver 32 of the game machine 12,and then is input to the game processor 52. One bit of this digitalsignal is transmitted as “1” or “0” depending on ON or OFF of the switch38. Therefore, by checking that bit, the game processor 52 can identifywhich game player delivered a serve.

As the game processor 52, an arbitrary kind of processor can beutilized. This embodiment uses a high-speed processor that has beendeveloped and filed as a patent application by the applicant. Thishigh-speed processor is disclosed in detail, for example, in JapanesePatent Laying-open No. H10-307790 [G06F13/36, 15/78] and U.S. Pat. No.6,070,205 corresponding thereto.

The game processor 52, although not illustrated, includes variousprocessors such as a CPU, graphic processor, sound processor and DMAprocessor, and also includes an A/D converter used for fetching ananalog signal, and an input/output control circuit that receives inputsignals such as key operation signals and an infrared signal andsupplies output signals to an external device. Thus, a demodulatedsignal from the infrared receiver 32 and input signals from theoperating keys 26 to 30 are applied to the CPU through this input/outputcontrol circuit. The CPU performs required operations in response tothese input signals, and supplies an operation result to the graphicprocessor, etc. The graphic processor and the sound processor thusperform an image processing and a sound processing in accordance withthe operation result.

The processor 52 is provided with an internal memory 54 which includes aROM or RAM (SRAM and/or DRAM). The RAM is used as temporary memory,working memory, counter, or register area (temporary data area) and flagarea. The processor 52 is connected with an external memory 56 (ROMand/or RAM) through an external bus. This external memory 56 ispreinstalled with a game program.

The processor 52 performs an arithmetic operation, graphic processingand sound processing at each relevant processor according to the inputsignals from the infrared receiver 32 and operating keys 26 to 30, andoutputs a video signal and an audio signal. The video signal is acomposite of text screens and sprite images shown in FIG. 2 or FIG. 3 asmentioned above. These video signal and audio signal are supplied to thetelevision monitor 20 through the AV cable 22 and AV terminal 18.Therefore, such a game screen as shown in FIG. 2 or FIG. 3, for example,is displayed on the television monitor 20 with the reproduction ofrequired sounds (sound effects and game music).

In this virtual tennis game system 10, briefly speaking, the gamemachine 12, i.e., the game processor 52 receives acceleration datacontained in infrared signals from the two racket-shaped input devices34, decides a movement parameter of the ball 40 (FIG. 2) when theacceleration of the racket-shaped input device 34 reaches a peak, andmoves the ball 40 in the game screen according to the parameter.

The racket-shaped input device 34, as shown in FIG. 5, includes a grippart 58 and a ball striking part or racket face part 60 extending fromone end of the grip. The grip part 58 and the racket face part 60 areintegrally formed by a two-halved plastic housing.

On the inside of the racket face part 60 of the plastic housing in theracket-shaped input device 34, bosses are formed to join the two-halvedhousing, and the piezoelectric buzzer element 66 is fixed to constitutethe acceleration sensor circuit 48 (FIG. 4). The piezoelectric buzzerelement 66, as is well known, includes a ceramic plate 70 stuck on ametalic plate 68, and makes a buzzer sound when a voltage is appliedbetween the metalic plate 68 and an electrode on the ceramic plate 70.In this embodiment, the piezoelectric buzzer element 66 configured thatway is utilized as an acceleration sensor. That is, it is well knownthat the ceramic plate 70 is made of a piezoelectric ceramic andgenerates an electrical signal when the piezoelectric ceramic comesunder the influence of stress. In this embodiment, therefore, anelectrical signal generated in response to the movement of thepiezoelectric buzzer element 66, i.e., the racket-shaped input device 34on the ceramic plate 70 is taken out from between the metalic plate 68and the above-mentioned electrode. In this embodiment, however, byperforming predetermined digital signal process in accordance with theelectrical signal, an acceleration correlation digital signal or data isfetched into the MCU 50 as described later.

Inside the housing, a printed circuit board 72 is also mounted with thebosses. On the printed circuit board 72, the serve switch 38 is placed,the MCU 50 shown in FIG. 4 mounted, and further the infrared LED 36attached.

Referring to FIG. 6, the piezoelectric buzzer element 66 described aboveis included in the acceleration sensor circuit 48. In addition, the MCU50 is provided with an external oscillation circuit 80, and operates inresponse to a clock signal from the oscillation circuit 80.

The MCU 50 outputs a rectangular wave signal from an output port 0, andapplies it to one electrode 66 a of the piezoelectric buzzer element 66,for example, via a 10 kΩ resistor 82. The electrode 66 a of thepiezoelectric buzzer element 66 is grounded, for example, via a 0.1 μFcapacitor 84. The electrode 66 a is also connected with a diode circuit86 so as to keep voltage variations within a certain range.

The other electrode 66 b of the piezoelectric buzzer element 66 isconnected to an input port 0 of the MCU 50, and is also connected to adiode circuit 88 so as to keep voltage variations within a certainrange. The two electrodes 66 a and 66 b of the piezoelectric buzzerelement 66 are electrically isolated with a relatively high resistor 90of 1 MΩ, for example.

When a rectangular wave signal shown in FIG. 7(A) is applied to theelectrode 66 a of the piezoelectric buzzer element 66, such a triangularwave signal as shown in FIG. 7(B) is input into the input port 0 of theMCU 50 as the capacitor 84 charges or discharges electricity. Amagnitude of the rectangular wave signal (the peak value) and amagnitude of the triangular signal (the peak value) depend on the diodecircuits 86 and 88, respectively.

When the racket-shaped input device 34 (FIG. 4) stands still, that is,it is not displaced, the lower side of the triangular wave signal remainunchanged as shown in a left part of FIG. 7(B). However, when theracket-shaped input device 34 is displaced by an operator in athree-dimensional space, a piezoelectric effect due to the displacementproduces a voltage on the piezoelectric buzzer element 66. Thisacceleration correlation voltage biases the minus level of therectangular wave signal. Consequently, when the racket-shaped inputdevice 34 is displaced, the acceleration correlation voltage is producedon the piezoelectric buzzer element 66 at a level in accordance with amagnitude of the movement acceleration. Thus the minus level of thetriangular signal input into the input port 0 of the MCU 50, variesdepending on the level of the acceleration correlation voltage 92 asshown in FIG. 7(B).

The MCU 50, as described later, converts such variations in the lowerside of the triangular wave signal into acceleration data, and drivesthe LED 36 based on the acceleration data.

Referring to FIG. 8 and FIG. 9, an operation of the virtual tennis gamesystem 10 according to FIG. 1 embodiment is now outlined. A game can bestarted by turning on the power switch 24 shown in FIG. 1. The gameprocessor 52 shown in FIG. 4 firstly performs initialization in a stepS1, and more specifically, it initializes the system and all variables.

The game processor 52 then updates an image signal in a step S2 to renewan image displayed on the monitor 20. The update of a displayed image iscarried out on a frame-by-frame basis (television frame or video frame).

The game processor 52 performs a process in accordance with a systemstate. The first process is a selection of a game mode. For this gamemode selection, an operator or game player, in a step S3 as shown inFIG. 7, operates the selection keys 26 shown in FIG. 1 to select betweenan one-person play mode and two-person play mode, or select between asingles mode and doubles mode, and sets the difficulty level of a game,etc.

A real tennis game begins with a serve and enters into a rally. Fordelivering a serve, it is necessary to toss the ball 40 (FIG. 2 and FIG.3) in the game screen. Thus, the game processor 52 performs a pre-tossprocess in a step S4, and then carries out a during-toss process in astep S5. That is, if the serve switch 38 is pressed during the pre-tossprocess, the game processor 52 proceeds to the during-toss process. Ifthe racket-shaped input device 34 is not swung during the during-tossprocess, the game processor 52 returns to the pre-toss process. Also ifthe racket-shaped input device 34 is swung during the during-tossprocess, the game processor 52 then moves to a during-rally process in astep S6. If a point is determined in the during-rally process, the gameprocessor 52 moves to a point scoring process in a step S7. Depending onwhether or not the scored point meets a condition for ending a game, thegame processor 52 returns to the game mode selection (S3) or thepre-toss process (S4).

As shown in FIG. 8, after the during-toss process in the step S5 and theduring-rally process in the step S6, the game processor 52 performs acoordinate arithmetic operation for the ball 40 in a step S8 to displacethe ball 40 (FIG. 2 and FIG. 3) in the game screen according to theacceleration data from the racket-shaped input devices 34.

Subsequently, if there is an interrupt by a video synchronizing signal,the game processor 52 carries out an image update shown in the step S2(FIG. 8). If an audio interrupt takes place, a sound process isperformed in a step S9, thereby outputting game music and sound effectssuch as ball striking sounds. If an interrupt occurs for other than thesound process, the game processor 52 receives the infrared signal (code)input from the infrared receiver 32 in a step S10 of FIG. 8.

Referring to FIG. 10, this FIG. 10 shows an entire operation of the MCU50. In a first step S111, the MCU 50 initializes variables to be handledby the MCU 50, such as a detected offset value and offset counter valuedescribed later, and also initializes the input ports and the outputports (FIG. 6).

After acceleration detection (described below) in a step S12, the MCU 50judges whether the racket-shaped input device 34 belongs to a firstplayer in a step S13. That can be determined by checking a particularinput port of the MCU 50 in step S13: the input device 34 belongs to thefirst player if the particular input port of the MCU 50 is set to “1”,and the input device 34 belongs to the second player if the particularinput port is set to “0”. Then if “YES” in the step S13, i.e., the inputdevice 34 belongs to the first player, the MCU 50 determines whether atransmission state has been established in a step S14, or if “NO” in thestep S13, i.e., the input device 34 belongs to the second player, theMCU 50 determines whether a transmission state has been established in astep S15.

Although not illustrated, the MCU 50 has a state counter as a softwarecounter, and the transmission state is rendered each time the statecounter reaches a predetermined value. In the steps S14 and S15,therefore, the MCU 50 detects whether the state counter has reached thepredetermined value. If “NO” in the step S14 or S15, the MCU 50 sets atransmission code to “0” in a step S16. Reversely, if “YES” in the stepS14 or S15, the MCU 50 proceeds straight to a code transmission processin a step S17 (described later in detail). After performing the codetransmission process in the step S17, the MCU 50 increments the statecounter (not illustrated) by 1 (one) in a step S18 and returns to thestep S12. As described later, the code transmission process is performedin a bit-serial fashion, and a time required to do this is as extremelyshort as a few microseconds.

FIG. 11 is a flowchart showing details of the step S12 in FIG. 10. In afirst step S21 of the acceleration detection process, the MCU 50 copiesthe detected offset value set in a register (not illustrated) into anoffset counter (not illustrated). The detected offset value is used toinput a high level and low level for determining a rectangular waveshown in FIG. 7(A) in a time-homogeneous manner when no voltage isgenerated on the piezoelectric buzzer element 66. At a start of theoperation, the detected offset value is set to an arbitrary defaultvalue.

After the step S21, the MCU 50 sets the output port 0 to “1” in a stepS22. Thus, the output port 0 outputs “1”, i.e. a high-level signal. Thenin a step S23, the MCU 50 reads data from the input port 0.

In a step S24, the MCU 50 judges whether the data read from the inputport 0 in the step S23 is “1”. If “YES”, the MCU 50 increments anintegration counter (not illustrated) by 1 (one) in a next step S25. Theintegration counter is used to calculate a time period during which ahigh level was read in. The integration counter is incremented when therelevant input port is set to “1” or high level, and the counter is notincremented when the port is set to “0”.

If the integration counter was incremented in the step S25 or “NO” wasdetermined in the step S24, the MCU 50 increments the offset counter ina step S26 and then determines whether the offset counter has reached aspecified value in a step S27. That is, after setting the output port 0to “1” in the step S22, the MCU 50 continues to output “1” from theoutput port 0 until it judges that “NO” is determined in step S27.

When the MCU 50 determined that the offset counter has reached thepredetermined value in the step S27, it sets the output port 0 to “0”,i.e. a low level in a step S28. Then the MCU 50 copies the detectedoffset value stored in the register into the offset counter in a stepS29.

In a succeeding step S30, the MCU 50 reads data from the input port 0.In a step S31, the MCU 50 judges whether the data read from the inputport 0 in the step S30 is “1”. If “YES”, the MCU 50 increments theintegration counter by 1 (one) in a next step S32.

In a case where the integration counter was incremented in the step S32or “NO” was determined in the step S31, the MCU 50 decrements the offsetcounter by 1 (one) in a step S33 and determines whether the offsetcounter has reached 0 (zero) in a step S34. That is, after setting theoutput port 0 to “0” in the step S28, the MCU 50 continues to output “0”from the output port 0 until it judges that “NO” is determined in thestep S34.

If “YES” is determined in the step S34, i.e. the offset counter hasreached zero (0), the MCU 50 subtracts an intermediate value from acount value of the integration counter to obtain a difference value. Theintermediate value here is N/2, assuming that N is a total number of therepeating times of returning from the step S27 to the step S23 for highlevel detection and the repeating times of returning from the step S34to the step S30 for low level detection. A reason why the differencevalue is evaluated by using the intermediate value in a step S35 is torender a ratio between a high-level period and a low-level period (dutyratio: 50%) in a state that an ideal piezoelectric buzzer element isused and no acceleration correlation voltage is produced on thepiezoelectric buzzer element a criterion or base for determining theacceleration.

More specifically, the integration counter counts the number of times ofreading “1” or high-level data from the input port 0 as mentioned above,and if an ideal piezoelectric buzzer element is used and no accelerationcorrelation voltage is generated on the piezoelectric buzzer element,the difference value of “the integration counter value—the intermediatevalue” should be zero. Accordingly, if any voltage occurs on thepiezoelectric buzzer element 66, a significant value can be obtained asthe difference value. Thus in a step S36, the displacement accelerationfor the racket-shaped input device 34 is decided in accordance with thisdifference value. In principle, the acceleration data is obtained bymultiplying the difference value by a predetermined coefficient.

After that, the MCU 50 corrects the detected offset value in a step S37based on the difference value obtained in the step S35. Since a gameplayer or operator does not swing the racket-shaped input device 34 inthe initial state, no acceleration correlation voltage occurs on thepiezoelectric buzzer element 66. Nevertheless, if a difference valueother than zero is detected in the step S35, this means that thedetected offset value set in the step S21 is not correct in terms of thecharacteristics of the piezoelectric buzzer element used in theracket-shaped input device. In other words, this means that the currentpiezoelectric buzzer element is not an ideal piezoelectric buzzerelement. Thus, in order to correct deviations in characteristics betweenthe current piezoelectric buzzer element and the ideal piezoelectricbuzzer element, the detected offset value is corrected according to thedifference value in the step S37.

On the other hand, if a setting is made so as to invariably change orcorrect a detected offset value in the step S37, the detected offsetvalue would be corrected even on the basis of a difference valueresulting from the actual presence of the acceleration correlationvoltage on the piezoelectric buzzer element. However, the period ofvoltage generation on the piezoelectric buzzer element is very short ascompared to other periods. There is thus no problem in performing thestep S37 each time the difference value is detected. Accordingly, thedetected offset value is properly corrected at the start of the tennisgame, and does not fluctuate so greatly even if the step S37 isperformed each time the acceleration is detected, which thus causes nointerference with the tennis game.

In a next step S38, the MCU 50 reads a value “1” or “0” via the inputport 1 from the key switch, i.e., serve switch 38. Next, in a step S39,the MCU 50 adds a parity bit to calculate the transmission code based onthe value from the key switch 38 and the displacement acceleration ormovement acceleration of the racket-shaped input device 34 decided inthe step S36, and returns to the step S13 in the main routine (FIG. 10).

Now referring to FIG. 12, the code transmission from the racket-shapedinput device 34 to the game processor 52 in the step S17 (FIG. 10) isdescribed below. In a first step S41, the MCU 50 copies the transmissioncode produced in the step S12 or S16 into the temporary data register(not illustrated). Then, the MCU 50 determines whether a mostsignificant bit of the code is “1”. If the most significant bit is “1”,the MCU 50 judges “YES” in a step S42, and sets the output port 1 to “1”to turn on the LED 36 (FIG. 4) in a step S43. After that, the MCU 50waits for a predetermined waiting time in a step S44. However, if “NO”in the step S42, i.e., the most significant bit is “0”, the processproceeds straight to a step S44.

After the predetermined waiting time has elapsed in the step S44, theMCU 50 sets the output port 1 to “0” and turns off the LED 36 in a stepS45. Then, the MCU 50 waits for a predetermined waiting time in a stepS46.

After the predetermined waiting time has elapsed in the step S46, theMCU 50 shifts the temporary data to the left by one bit in a step S47 soas to make a transmitted bit least significant. That is, the MCU 50shifts a bit to be transmitted for the bit-serial transmission. Then ina step S48, the MCU 50 determines whether all the bits have beentransmitted. If “NO”, the process returns to the step S42. If “YES”, theprocess comes to an end and the MCU 50 moves to the step S18 shown inFIG. 10.

Now referring to FIG. 13, the code reception process by the gameprocessor 52 in the step S10 shown in FIG. 8 is described below. Sincethis code reception process is driven by means of a timer interrupt, thegame processor 52 determines whether or not there is a timer interruptin a first step S51. If “NO”, the game processor 52 sets a timerinterrupt in a step S52. If “YES”, the process goes straight to a stepS53.

In the step S53, the game processor 52 reserves a temporary data areafor code reception in the memory 54 (FIG. 4). Next, in a step S54, thegame processor 52 reads data from the input port to which an outputsignal is input from the infrared receiver 32. Then, in a step S55, thegame processor 52 shifts the temporary data to the right so as to makethe data read in the step S54 of the most significant bit of thetemporary data.

Subsequently, the game processor 52 determines whether all the bits havebeen received in a step S56. If “NO”, the game processor 52 waits for anext timer interrupt in a step S57. If “YES”, the game processor 52cancels the current timer interrupt in a step S58, and copies thetemporary data as a received code in a step S59. The game processor 52performs the game process shown in FIG. 8 using this received code.

As previously shown in FIG. 8, after the game mode selection in the stepS3, the game processor 52 performs the “pre-toss” process in the stepS6. More specifically, the pre-toss process is carried out in accordancewith a flowchart shown in FIG. 14.

In a first step S61 of the pre-toss process, the game processor 52judges whether the server is a CPU player (not a game player), using arandom number at the start of the game and, after that, based on rulesof a real tennis game.

If “NO” in the step S61, this means that the game player using theracket-shaped input device needs to serve a ball. The game processor 52thus checks data received from the input device 34 in a step S62. Morespecifically, the game processor 52 checks the data temporarily storedin the memory 54. Then based on the received data, the game processor 52determines whether the serve switch 38 has been pressed. If “NO” in astep S63, the game processor 52 displays a message, for example, “Pressthe button to toss a ball!” in a step S64 to prompt the game player totoss a ball, i.e., operate the serve switch 38.

If “YES” is determined in the step S61, the game processor 52 determineswhether the CPU player has tossed a ball in steps S65 and S66. If theCPU player has tossed a ball, the game processor 52 decides axial speedsVx, Vy and Vz of the ball in a step S67 for the tossing of the ball 40(FIG. 2 and FIG. 3) in the “during-toss” process, as in the case where“YES” is determined in a step S63. After that, the game processor 52switches its state to “during-toss” in a step S68.

The “during-toss” process is performed in accordance with a flowchartshown in FIG. 15. Specifically, the game processor 52 updates axialcoordinates Px, Py and Pz of the tossed ball in a first step S71, andbased on the updated coordinates, determines whether the position of theball has reached a range in which a serve can be delivered in a stepS72. For example, it is impossible to serve a ball if the position of Yaxis, i.e., a height of the ball becomes out of a predetermined valuerange, and the game processor 52 thus judges whether the ball hasreached within such a serve-enabled range that was set in advance.

If “YES” in the step S72, the game processor 52 judges whether the ballposition has gone beyond the serve-enabled range in a step S73. If“YES”, i.e., the ball is out of the serve-enabled range in the step S73,the game processor 52 returns the axial coordinates of the tossed ballto the pre-toss state, and switches its state to “pre-toss” again in astep S74.

If a result is “NO” in the step S73, i.e., the ball is within theserve-enabled range, the game processor 52 determines whether the serveris a CPU player in a step S75. If the game processor 52 judged that theserver is a game player (“NO”) in the step S75, it checks the datareceived from the racket-shaped input device 34 operated by the gameplayer in a step S76. Reversely, if “YES” is determined in the step S75,the game processor 52 judges the presence or absence of a swing (thepresence or absence of a process equivalent to the game player'sswinging the racket-shaped input device 34) in a step S77 according to apredetermined algorithm for the action of the CPU player. Then, the gameprocessor 52 judges whether a swing (or an action equivalent to that)has been performed in a step S78.

If the result of a judgment on a swing is “YES”, the game processor 52calculates an initial speed of the ball after served from the ballcoordinates and the magnitude of the swing in a step S79. If the serveris a game player, the game processor 52 detects the displacementacceleration in the direction perpendicular to the racket surface of theracket-shaped input device in the step S79, using the code incoming fromthe racket-shaped input device operated by the game player, therebydetecting the magnitude of the swing and calculating the initial speedof the ball based on the swing magnitude. This terminates the ballserving operation, and the game processor 52 thus sets the server as anext ball striking player in a step S80, and switches its state to“during-rally” in a step S81.

The “during-rally” process is executed in accordance with a flowchartshown in FIG. 16. Specifically, the game processor 52 performs the ballcoordinate control in a first step S91, and determines whether the stateof the process is “during-rally” in a step S92. If “NO”, the processreturns. If “YES”, the game processor 52 executes the coordinate controlfor the player 1 and player 2 in steps S93 and S94, respectively.

More specifically, the process for ball coordinate control in the stepS91 is executed in accordance with flowcharts shown in FIG. 17 and FIG.18.

In a first step S101 shown in FIG. 17, the game processor 52 updates theaxial coordinates Px, Py and Pz and a speed vector of the served ball,and determines whether the position (coordinates) of the ball is withina receivable range for the player 1 in a step S102. If the result is“YES” in the step S102, the game processor 52 checks the data receivedfrom the racket-shaped input device of the player 1, and judges whetherthe racket-shaped input device was swung based on the received data in astep S103. If the result is “NO”, the game processor 52 returns theprocess straight to the step S92 (FIG. 16). If “YES”, the game processor52 calculates an initial speed vector of the ball after received in anext step S105, based on the coordinates of the ball and the magnitudeof the swing (i.e. the acceleration of the racket-shaped input devicewhen it is swung). Then the game processor 52 sets the player 1 as aball striking player in a step S106, and returns the process to the stepS92.

If “NO” in the step S102, the game processor 52 determines whether theball position is within the receivable range for the player 2. If theresult is “YES” in a step S107, the game processor 52 determines whetherthe player 2 is the CPU in a step S1108. If the result is “NO”, the gameprocessor 52 checks the data received from the racket-shaped inputdevice of the player 2 in a step S109, and if “YES”, the game processor52 judges the presence or absence of a swing (or a signal correspondingto that) in a step S110. Then, the game processor 52 determines whethera swing has been performed in a step S111. If “NO” in the step S111, theprocess returns as it is. If “YES”, however, the game processor 52calculates the initial speed vector of the ball after received in a stepS112, based on the coordinates of the ball and the magnitude of theswing (i.e., the acceleration of the racket-shaped input device when itis swung). In a step S113, the game processor 52 sets the player 2 as aball striking player, and then returns to the step S92.

If the result is “NO” in the step S107, i.e., the ball is out of thereceivable range as described above, the game processor 52 judgeswhether the ball is beyond the receivable range in a step S114. Asaforesaid, a certain range defined by the axes X, Y and Z is preset as areceivable range in which a receiving player can strike a ball back. Inthe steps S102, S107 and S114, therefore, the game processor 52 judgeswhether the ball is within the receivable range.

If the result is “YES” in the step S114, i.e., the ball is out of thereceivable range, the game processor 52 stores the result “letting theball pass” in a result register (established in the memory 54) in a stepS115, and switches its state to “point scoring process” in a step S116.

If “NO” is determined in the step S114, i.e., the ball is within thereceivable range, the game processor 52 judges whether the Z coordinateof the ball has reached the position of the net in a first step S117 ofFIG. 18. If “YES” is determined in the step S117, the game processor 52determines whether the X and Y coordinates of the ball are within therange in which a “Let” is called in a step S118. If “NO”, the gameprocessor 52 determines whether the X and Y coordinates of the ball arewithin the range in which a “Net” is called in a step S119. If “NO”, theprocess returns straight, but if “YES”, the game processor 52 judgeswhether the struck ball is a serve or not in a step S120. If “YES” inthe step S120, the game processor 52 stores a “Fault” in the resultregister in a step S121, and, if “NO”, it stores a “Net” in the resultregister. In either case, the game processor 52 switches its state to“point scoring” in a step S123, and returns the process.

If “YES” is determined in the step S118, i.e., the ball has reached the“Let” range, the game processor 52 determines whether the struck ball isa serve or not in a step S124. If “YES” is determined in the step S124,the game processor 52 stores a “Let” in the result register in the stepS121, switches its state to “point scoring” in a step S126, and returnsthe process. If “NO”, the game processor 52, based on the speed vectorof the ball, calculates the initial speed vector of the ball aftertouching the net, and the process returns.

If “NO” in the step S117, i.e., the Z coordinate of the ball has notreached the net position, the game processor 52 judges whether the Ycoordinate of the ball has reached the court surface (i.e., the ball 40has fallen in the court 46 on the monitor screen) in a step S128. If“YES” in the step S128, the game processor 52 determines whether the Xand Z coordinates of the ball are within the court in a step S129.

If “NO”, the game processor 52 stores an “Out” in the result register ina step S131, and switches its state to “point scoring” in a step S132,and the process returns. If “YES” in the step S129, the game processor52, based on the speed vector of the ball, calculates the initial speedvector of the ball after bounding, and returns the process.

When the ball coordinate control process shown in FIGS. 17 and 18 iscompleted, the game processor 52 determines whether its state is“during-rally” in a step S92. If YES”, the game processor 52 proceeds tothe player coordinate control process described in FIGS. 19 and 20.Since the process is the same for both the player 1 and player 2, it isexplained below on the assumption that it is applied to the bothplayers. As in the case with the previous process, the player positioncontrol process is executed by every single video frame.

In a first step S141, the game processor 52 calculates the predictedreturn position (the predicted position of the ball that will enter thecourt area on the next ball striking player's side) from the speedvector of the ball. Then, in a step S142, the game processor 52 comparesthe predicted return position calculated in the step S141 with thecurrent position of the player (X coordinate), and determines whetherthe predicted return position is within the ball strikable range for theball striking player. If “YES”, this means that the ball striking playercan strike the ball without moving or changing its ball strikingposition, and thus the process proceeds straight to a next step S1147(FIG. 20).

If the predicted return position is not within the ball strikable rangefor the ball striking player, the game processor 52 performs anautomatic ball striking position control that is a feature of thisembodiment. More specifically, the game processor 52 judges whether thecurrent X coordinate of the ball striking player is larger than the Xcoordinate of the predicted return ball position in a step S144. If“YES” is determined in step S144, this means that the ball strikingplayer is located on the right of the predicted return position on themonitor screen, and that the ball striking position needs to be shiftedto the left. In this case, therefore, the game processor 52 subtracts acertain value from the current X coordinate of the ball strikingposition in a step S145. Reversely, if “NO” is determined in the stepS144, this means that the ball striking player is on the left of thepredicted return position on the monitor screen, and that the ballstriking position needs to be moved to the right. In this case, the gameprocessor 52 adds a certain value to the current X coordinate of theball striking position. In this way, executing the step S145 or S146makes it possible to automatically shift the ball striking position ofthe ball striking player with respect to the predicted return position.After that, the process proceeds to a step S147.

Since “a certain value” in the step S145 or S146 relates to the movingspeed of a player, i.e., how fast a player can run, all players may havetheir own characteristics (running speed) by diversifying the certainvalue among them.

The above explanation is based on the premise that only the X coordinateis automatically controlled. It is needless to say that the idea of thisembodiment can be also easily applied to other coordinates such as Zcoordinate if required.

In a step S147 shown in FIG. 20, the game processor 52 checks a“forward/backward” state stored in the memory 54, and judges which isthe present state in a step S148. If the present state is “forwardposition”, the game processor 52 proceeds to a step S149 to determinewhether the relevant player is the CPU or not. In the case of “NO”, therelevant player is the game player, and so the game processor 52 checksthe state of the serve switch 38 in a step S150 and determines whetherthe serve switch 38 has been pressed in a step S151. Specifically, thegame processor 52 determines whether the serve switch 38 has beenpressed during the rally in the step S151. If “YES”, the game processor52 switches the state of the player in the “forward position” to“backward movement”. However, if the result is “YES” in the step S149,i.e. the relevant player is the CPU player, the game processor 52determines whether the player should move backward or not in steps S153and S154. If the player needs to move backward, the game processor 52proceeds to a step S152, and if “NO”, the process returns straight.Thus, operating the serve switch 38 during a rally makes it possible tomove backward the ball striking player in the forward position, i.e.,the ball striking position.

If the state of the player is “backward position”, the game processor 52goes on to a step S155 to determine whether the player is the CPU ornot. If “NO”, the relevant player is the game player, and so the gameprocessor 52 checks the state of the serve switch 38 in a step S156 andjudges whether the serve switch 38 has been pressed in a step S157.Specifically, the game processor 52 determines whether the serviceswitch 38 has been pressed during the rally in the step S157. If “YES”,the game processor 52 changes the state of the player in the “backwardposition” to “forward movement”. If “YES” is determined in the stepS155, i.e., the relevant player is the CPU player, the game processor 52determines whether the player should move forward in steps S159 andS160. If the player needs to move forward, the game processor 52proceeds to a step S158, and if not, the process returns straight. Thus,operating the serve switch 38 during a rally makes it possible to moveforward the ball striking player in a backward position, i.e., the ballstriking position.

Additionally, if the forward/backward state of a player is set to“forward movement”, the game processor 52 adds a certain value to thepresent Z coordinate to move the player forward in a step S161. Then,when the game processor 52 has determined that the player has reachedthe limit of forward movement in the Z coordinate in a step S162, itswitches the player's state to “forward position” in a step S163. On theother hand, if the forward/backward state of a player is set to“backward movement”, the game processor 52 subtracts a certain valuefrom the present Z coordinate to move the player backward in a stepS164. Then, when the game processor 52 has determined that the playerhas reached the limit of backward movement in the Z coordinate in a stepS165, it moves the player's state to “backward position”. In eithercase, the process returns.

In addition, an operation of the “point scoring” is performed inaccordance with a flowchart shown in FIG. 21. More specifically, thegame processor 52 checked the result register in a step S171 anddetermines the result in a step S172. If the serve result is a “fault”,the game processor 52 judges whether a fault flag has been already set,i.e., one fault is recorded in a step S173. If the result is “YES” inthe step S173, the game processor 52 sets the message “DOUBLE FAULT” ina step S174 so as to display it on the monitor screen. At the same time,the game processor 52 increments the score of a player not being theball striking player in a step S175. That is, the game processor 52 addsa point to the score of the non-ball striking player, and displays theincreased score in the score display area 48 (FIG. 2 and FIG. 3) in astep S176. After that, the game processor 52 clears the fault flag inthe step S177, and judges whether the game has come to an end in stepsS178 and S179. If “YES” in a step S179, the game processor 52 judgeswhether the match has finished in steps S180 and S181. If “YES”, thegame processor 52 switches its state to “game mode selection” in a stepS1184, and returns the process.

If “NO” in the step S181, the game processor 52 changes servers, setsthe players to “backward position” in a step S182, and goes on to a stepS183 to move its state to “pre-toss”, and returns the process. If thejudgment result is “NO” regarding the end of the game in the step S179,the process proceeds to the step S183.

If the result stored in the result register is a “net”, the gameprocessor 52 sets the message “NET” in a step S185, and moves on to astep S175. Reversely, if the result indicated by the result register isan “out”, the game processor 52 sets the message “OUT” in a step S186,and goes on to the step S175. If the result is “letting the ball pass”,the game processor 52 increases the score for the ball striking playerin a step S187, and proceeds to a step S176.

If the judgment result is a “let” in the step S172, the game processor52 sets the message “LET” in a step S188, sets the forward/backwardstate of the both players to “backward position” in a step S189 andmoves its state to “pre-toss” in a step S190, and the process returns.

If the serve result is a “fault” and the judgment result in the stepS173 is “NO”, then that is the first fault, and so the game processor 52sets the message “FAULT” in a step S191, sets the fault flag in a stepS192, and then proceeds to the step S189.

In this manner, the virtual tennis game system 10 in FIG. 1 allows usersto play a tennis game on the screen of the monitor 20 by moving orswinging the racket-shaped input device 34 in the three-dimensionalspace.

In the above-mentioned embodiment, an acceleration correlation signal istaken out as a voltage signal. Alternatively, it may be taken out as acurrent signal.

Moreover, in the above embodiment, the MCU 50 and LED 36 form a digitalsignal transmission means so as to send an acceleration correlationdigital signal to the processor in a wireless manner. Alternatively, thesignal transmission means may send data by means of an appropriate datatransmission line instead of doing that wirelessly.

Furthermore, the embodiment shown here as an example, outputs a digitalsignal as an acceleration correlation signal. Alternatively, it maytransmit a detected voltage value or current value as an analog signal.

Although the present invention has been described and illustrated indetail, it is clearly understood that the same is by way of illustrationand example only and is not to be taken by way of limitation, the spiritand scope of the present invention being limited only by the terms ofthe appended claims.

1. A game system including a game machine and an input device, underwhich a player plays a game having a rally state using said inputdevice, wherein during the rally state, said input device comprises anacceleration sensor for generating an acceleration correlation signalwhen said player actually swings said input device in a real space, anda transmission unit for transmitting said generated accelerationcorrelation signal to said game machine; and said game machine displaysa ball on a monitor screen through execution of a game program in whicha CPU player character controlled by a computer program plays against aplayer character controlled by said player, and further comprises: afirst calculation unit for calculating a predicted return position ofsaid ball returned by said CPU player character; a judgment unit forjudging whether a current position of said player character is in a ballstrikable range by comparing said predicted return position and thecurrent position of said player character; a ball striking positionmovement unit for automatically moving a ball striking position of saidplayer character to be approximated to said predicted return position inwhich said judgment unit judges that the current position is out of theball strikable range, wherein the ball striking position of said playercharacter remains at the current position if the current position iswithin the ball strikable range, and is always moved to be approximatedto said predicted return position when the current position is out ofthe ball strikable range without inactivating said player character toallow said player to continue participating the game; a swing detectionunit for detecting whether said input device has been actually swung ornot; and a second calculation unit for calculating an initial speedvector of said ball after received when said swing detection unit hasdetected a swing in which the position of said ball exists in a ballreceivable range that is three-dimensionally defined, from a position ofsaid ball and acceleration of said input device according to saidacceleration Correlation signal, wherein the initial speed vector iscalculated based on coordinates of said ball on the screen and amagnitude of a swing of said input device.
 2. A game system including agame machine and two or more input devices, under which two or moreplayers play a game having a rally state using said input devices,wherein during the rally state, said input devices each comprise anacceleration sensor for generating an acceleration correlation signalwhen one of said players actually swings said input device in a realspace, and a transmission unit for transmitting said generatedacceleration correlation signal to said game machine; said game machineruns a game program in which said two or more players play the game anddisplays said ball on a monitor screen, and further comprises: a firstcalculation unit for calculating a predicted return position of a ballreturned by an opposite player character controlled by one of saidplayers; a judgment unit for judging whether a ball striking playercharacter controlled by another of said players is in a ball strikablerange by comparing said predicted return position and a current positionof said ball striking player character; a ball striking positionmovement unit for automatically moving a ball striking position for saidball striking player character to be approximated to said predictedreturn position when said judgment unit judges that the current positionis out of the ball strikable range, wherein the ball striking positionof said ball striking player character remains at the current positionif the current position is within the ball strikable range, and isalways moved to be approximated to said predicted return position whenthe current position is out of the ball strikable range withoutinactivating said ball striking player character to allow said two ormore players to continue participating the game; a swing detection unitfor detecting whether said input device has been actually swung or not;and a second calculation unit for calculating an initial speed vector ofsaid ball after received when said swing detection unit has detected aswing in which the position of said ball exists in a ball receivablerange that is three-dimensionally defined, from a position of said balland acceleration of said input device according to said accelerationcorrelation signal.
 3. A game system according to claim 1 or 2, whereinsaid input device further includes an operating switch; saidtransmission unit transmits an operation signal from said operatingswitch together with said acceleration correlation signal to said gamemachine; and said game machine further comprises a position movementunit for moving said ball striking position on said monitor screen fromforward position to backward position or from backward position toforward position, in response to said operation signal transmitted fromsaid input device.
 4. A game system according to claim 1 or 2, whereinsaid transmission unit of said input device includes an infraredlight-emitting element for transmitting said acceleration correlationsignal by means of infrared light.
 5. A game system according to claim4, wherein said transmission unit digital-modulates and transmits saidacceleration correlation signal to said game machine; and said gamemachine digital-demodulates said acceleration correlation signaltransmitted by said transmission unit.
 6. A method for controlling agame having a rally state displayed on a game machine and played by aplayer using an input device, the gaming machine comprising a processorand the input device, during the rally state, the method comprising:generating an acceleration correlation signal when said player actuallyswings said input device in a real space; transmitting said generatedacceleration correlation signal to said game machine; displaying, by thegame machine, a ball on a monitor screen through execution via theprocessor of a game program in which a CPU player character controlledby a computer program plays against a player character controlled bysaid player: calculating, via the processor, a predicted return positionof said ball returned by said CPU player character; judging via theprocessor, whether a current position of said player character is in aball strikable range by comparing said predicted return position and thecurrent position of said player character; automatically moving, via theprocessor, a ball striking position of said player character to beapproximated to said predicted return position in which said judgmentunit judges that the current position is out of the ball strikablerange, wherein the ball striking position of said player characterremains at the current position if the current position is within theball strikable range, and is always moved to be approximated to saidpredicted return position when the current position is out of the ballstrikable range without inactivating said player character to allow saidplayer to continue participating the game; detecting, via the processor,whether said input device has been actually swung or not; andcalculating, via the processor, an initial speed vector of said ballafter received when a swing is detected in which the position of saidball exists in a ball receivable range that is three-dimensionallydefined, from a position of said ball and acceleration of said inputdevice according to said acceleration correlation signal, wherein theinitial speed vector is calculated based on coordinates of said ball onthe screen and a magnitude of a swing of said input device.
 7. Themethod according to claim 6, wherein said input device includes anoperating switch and a transmitting unit, the transmitting unittransmits an operation signal from said operating switch together withsaid acceleration correlation signal to said game machine, and whereinthe method further comprises moving, via the processor, said ballstriking position on said monitor screen from forward position tobackward position or from backward position to forward position, inresponse to said operation signal transmitted from said input device. 8.The method according to claim 6, wherein said input device includestransmitting unit having an infrared light-emitting element fortransmitting said acceleration correlation signal by means of infraredlight.
 9. The method according to claim 8, wherein said transmissionunit digital-modulates and transmits said acceleration correlationsignal to said game machine; and said game machine digital-demodulatessaid acceleration correlation signal transmitted by said transmissionunit.
 10. A method for controlling a game having a rally state displayedon a game machine played by two or more players using two or more inputdevices, the game machine comprising a processor and the two or moreinput devices, during the rally state, the method comprising: generatingacceleration correlation signals when the two or more players actuallyswing said two or more input devices in a real space; transmitting saidgenerated acceleration correlation signals to said game machine, whereinsaid game machine runs a game program in which said two or more playersplay the game and displays a ball on a monitor screen; calculating, viathe processor, a predicted return position of a ball returned by anopposite player character controlled by one of said players; judging,via the processor, whether a ball striking player character controlledby another of said players is in a ball strikable range by comparingsaid predicted return position and a current position of said ballstriking player character; automatically moving, via the processor, aball striking position for said ball striking player character to beapproximated to said predicted return position when said judgment unitjudges that the current position is out of the ball strikable range,wherein the ball striking position of said ball striking playercharacter remains at the current position if the current position iswithin the ball strikable range, and is always moved to be approximatedto said predicted return position when the current position is out ofthe ball strikable range without inactivating said ball striking playercharacter to allow said two or more players to continue participatingthe game; detecting, via the processor, whether said two or more inputdevices have been actually swung or not; and calculating, via theprocessor, an initial speed vector of said ball after received When aswing is detected in which the position of said ball exists in a ballreceivable range that is three-dimensionally defined, from a position ofsaid ball and acceleration of said input device according to saidacceleration correlation signal.
 11. The method according to claim 10,wherein each of said input devices includes an operating switch and atransmission unit; said transmitting unit transmits an operation signalfrom said operating switch together with said acceleration correlationsignal to said game machine, and wherein the method further comprises aposition movement unit for moving said ball striking position on saidmonitor screen from forward position to backward position or frombackward position to forward position, in response to said operationsignal transmitted from said input device.
 12. The method according toclaim 10, wherein each of said input devices includes a transmissionunit having an infrared light-emitting element for transmitting saidacceleration correlation signal by means of infrared light.
 13. Themethod according to claim 12, wherein said transmission unitdigital-modulates and transmits said acceleration correlation signal tosaid game machine; and said game machine digital-demodulates, via theprocessor, said acceleration correlation signal transmitted by saidtransmission unit.